package com.okaixz.client.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.okaixz.client.model.domain.KbAssistant;
import com.okaixz.client.model.domain.KbUserAssistantInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * APP用户信息表
 * </p>
 *
 * @author cdz
 * @since 2024-10-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="User对象", description="APP用户信息表")
public class UserDto implements Serializable {

    private static final long serialVersionUID = 1L;

    private String token;
//    private String nanoid;//8位数字字母和下划线组合 一个用户只能有一个

//    @ApiModelProperty(value = "主键")
//    @TableId(value = "id", type = IdType.AUTO)
//    private Long id;

//    private String wxOpenid;

//    @ApiModelProperty(value = "扫码登录才有")
//    private String wxRefreshToken;
//
//    @ApiModelProperty(value = "微信扫码登录才有")
//    private String wxAccessToken;
//
//    @ApiModelProperty(value = "小程序登录才有")
//    private String wxSessionKey;

    @ApiModelProperty(value = "用户id")
    private String userId;

    @ApiModelProperty(value = "用户名")
    private String nickName;

//    @ApiModelProperty(value = "密码,md5加密")
//    private String password;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "头像")
    private String image;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "0 男1 女2 未知")
    private Integer sex;

    @ApiModelProperty(value = "0正常1锁定")
    private Integer status;

    @ApiModelProperty(value = "0正常 1vip会员 2不限字数vip会员")
    private Integer vipFlag;

    @ApiModelProperty(value = "其它信息")
    private Integer flag;

//    @ApiModelProperty(value = "剩余次数")
//    private Integer remainTimes;

    @ApiModelProperty(value = "不限字数结束时间")
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private LocalDateTime vipExpireTime1;

    @ApiModelProperty(value = "vip过期时间")
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private LocalDateTime vipExpireTime;

//    @ApiModelProperty(value = "注册时间")
//    private LocalDateTime createdTime;

//    @ApiModelProperty(value = "更新时间")
//    private LocalDateTime updateTime;

    @ApiModelProperty(value = "用户类型0pc1小程序")
    private Integer type;

    @ApiModelProperty(value = "剩余创作字数")
    private Integer vipTokens;
    @ApiModelProperty(value = "是否关注微信公众号0未关注 1关注")
    private Integer subscribe;

    @ApiModelProperty(value = "剩余次数")
    private Integer remainTimes;

    private String qWSessionId;//千问sessionId

    private List<KbUserAssistantInfo> userAssistantInfoList;

    @ApiModelProperty(value = "签到标志")
    private Integer qiandao;
    //其它信息userId+vipFlag+"###"+vipExpireTime1加密串
    private String otherInfo;

    private List<KbAssistant> assistantList;

}
